package com.triones.ljr.service;

import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.page.TableDataInfo;
import com.triones.ljr.entity.bo.DeclareAuditBO;
import com.triones.ljr.entity.bo.DeclareAuditParams;
import com.triones.ljr.entity.bo.DeclareSysAuditBO;
import com.triones.ljr.entity.dto.DeclareAuditDO;
import com.triones.ljr.entity.vo.CustomDeclareAuditVO;

import java.util.List;

/**
 * 申报审核
 */
public interface DeclareAuditService {

    /**
     * 添加
     * @param bo
     * @return
     */
    boolean add(DeclareAuditBO bo);

    /**
     * 列表（分页）
     * @param params
     * @param pageQuery
     * @return
     */
    TableDataInfo<CustomDeclareAuditVO> pageList(DeclareAuditParams params, PageQuery pageQuery);

    /**
     * 审核
     * @param bo
     * @return
     */
    boolean audit(DeclareSysAuditBO bo);

    /**
     * 我的申报记录（分页）
     * @param keyword
     * @param status
     * @param pageQuery
     * @return
     */
    TableDataInfo<CustomDeclareAuditVO> apiDeclarePageList(String keyword,String status, PageQuery pageQuery);

    /**
     * 申报详情
     * @param id
     * @return
     */
    CustomDeclareAuditVO declareDetail(Long id);

    /**
     * 兑现
     * @param bo
     * @return
     */
    boolean fulfill(DeclareSysAuditBO bo);

    /**
     * 根据ids查询列表
     * @param ids
     * @return
     */
    List<CustomDeclareAuditVO> selectListByIds(List<Long> ids);

    /**
     * 修改
     * @param bo
     * @return
     */
    boolean edit(DeclareAuditBO bo);

    /**
     * 删除申报
     * @param id
     * @return
     */
    boolean remove(Long id);
}
